package com.ruoyi.system.domain;

import java.util.Date;
import java.math.BigDecimal;
import java.util.Set;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 入住管理对象 sys_check_in
 * 
 * @author ruoyi
 */
@Data
public class SysCheckIn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 老人用户ID */
    @Excel(name = "老人用户ID")
    private Long elderUserId;

    /** 老人姓名 */
    @Excel(name = "老人姓名")
    private String elderName;

    /** 房间ID */
    @Excel(name = "床位ID")
    private Long bedId;

    /** 房间名称 */
    @Excel(name = "房间名称")
    private String bedName;

    /** 入住时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入住时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkInTime;

    /** 预计退房时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预计退房时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date expectedCheckOutTime;

    /** 实际退房时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际退房时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actualCheckOutTime;

    /** 状态（0正常 1已退房） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=已退房")
    private String status;

    /** 审核状态（0待审核 1已通过 2已拒绝） */
    @Excel(name = "审核状态", readConverterExp = "0=待审核,1=已通过,2=已拒绝")
    private String auditStatus;
    
    /** 审核人 */
    private String auditBy;
    
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;
    
    /** 审核备注 */
    private String auditRemark;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 每月费用 */
    private BigDecimal monthlyFee;
    
    /** 老人自理能力 */
    @Excel(name = "老人自理能力")
    private String elderSelfCare;

    private BigDecimal balance;

    private Set<Long> elderUserIds;

} 